﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;

namespace SevenInvaders.common
{
    class Temporizador
    {
        public Boolean ativador = false;
        public float segundos;
        float contador;

        public Temporizador(float _segundos)
        {
            segundos = _segundos;
            contador = _segundos;
        }

        public void Update(GameTime gameTime)
        {
            if (ativador == true)
            {
                contador -= gameTime.ElapsedGameTime.Milliseconds;

                if (contador <= 0)
                {
                    contador = segundos;
                    ativador = false;
                }
            }
        }
    }
}

/* COMO USAR
 * =================================================================================
 * 1- Declare uma váriavel do tipos "Temporizador" dentro da classe que quiser usar.
 * ================================================================================= 
 * Exemplo:
 * --------
 * Temporizador minhaVariavel;
 * 
 * =======================================================================================
 * 2- No construtor da classe, declare o conteúdo da váriavel com o tempo em milisegundos.
 * =======================================================================================
 * Exemplo:
 * --------
 * minhaVariavel = new Temporizador(1000.0f);        //Nesse caso estou passado 1 segundo
 * 
 * =========================================================================================
 * 3- Declare no update da classe específica, ou da classe Game1 o update do temporizador na
 * variável criada, utilizando GameTime como parâmetro.
 * =========================================================================================
 * Exemplo:
 * --------
 * minhaVariavel.Update(gameTime)                    //Nesse caso declarando dentro da classe
 * Game1.minhaVariavel.Update(gameTime)              //Nesse caso declarando dentro da classe Game1
 * 
 * ============================================================================================
 * 4- Agora basta utilizador o "ativador" na condição que quiser, sempre testando como "False",
 * e no final da condição, entregar "true" o "ativador" para começar a contagem regressiva.
 * ============================================================================================
 * Exemplo:
 * --------
 * 
 *      if (teclado.IsKeyDown(Keys.Right) && minhaVariavel.ativador == false)
 *      {
 *          this.PositionX += 3;
 *          
 *          minhaVariavel.ativador = true;
 *      }
 * 
 * =========================================================================================
 * PS.: É interessante declarar uma váriavel específica dessa classe para cada tipo de ação!
 * =========================================================================================
 */

